]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
polkitAgent: Drop close() override in favour of closed signal
authorPhilip Withnall <withnall@endlessm.com>
Mon, 21 Jan 2019 18:10:42 +0000 (18:10 +0000)
committerFlorian Müllner <florian.muellner@gmail.com>
Thu, 24 Jan 2019 14:48:48 +0000 (14:48 +0000)
In case there are any internal ways the dialogue can close itself
without calling its own close() method, it’s probably better to do all
our cleanup on a handler for the `closed` signal instead.

This should introduce no functional changes except ensuring the
polkitAgent cleanup is always done.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/357

js/ui/components/polkitAgent.js

index 4ea4efba4bc31bf64d3c670a2f07b0b70c79db13..f03af35fc8e3a60a2e977b548755217503a1bd30 100644 (file)
@@ -42,6 +42,8 @@ var AuthenticationDialog = new Lang.Class({
             this._group.visible = !Main.sessionMode.isLocked;
         });
 
+        this.connect('closed', this._onDialogClosed.bind(this));
+
         let icon = new Gio.ThemedIcon({ name: 'dialog-password-symbolic' });
         let title = _("Authentication Required");
 
@@ -176,14 +178,6 @@ var AuthenticationDialog = new Lang.Class({
         this._session.initiate();
     },
 
-    close(timestamp) {
-        this.parent(timestamp);
-
-        if (this._sessionUpdatedId)
-            Main.sessionMode.disconnect(this._sessionUpdatedId);
-        this._sessionUpdatedId = 0;
-    },
-
     _ensureOpen() {
         // NOTE: ModalDialog.open() is safe to call if the dialog is
         // already open - it just returns true without side-effects
@@ -332,6 +326,12 @@ var AuthenticationDialog = new Lang.Class({
         this.close(global.get_current_time());
         this._emitDone(true);
     },
+
+    _onDialogClosed() {
+        if (this._sessionUpdatedId)
+            Main.sessionMode.disconnect(this._sessionUpdatedId);
+        this._sessionUpdatedId = 0;
+    },
 });
 Signals.addSignalMethods(AuthenticationDialog.prototype);